package com.carb.service;

import com.carb.dto.*;
import com.carb.entity.Member;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carb.enums.MemberLevel;
import com.carb.result.PageResult;
import com.carb.vo.MemberVO;

/**
 * <p>
 * 会员管理 服务类
 * </p>
 *
 * @author XuChaoyang
 * @since 2025-01-18
 */
public interface IMemberService extends IService<Member> {

    void addMember(UserAddDTO userAddDTO);

    PageResult<MemberVO> pageQuery(MemberPageQueryDTO memberPageQueryDTO);

    MemberVO getMemberById(Long id);

    void updateMember(MemberUpdateDTO memberUpdateDTO);

    void deleteMember(Long id);

    void rechargeBalance(Long id, Integer amount);

    void memberRegister(MemberRegisterDTO memberRegisterDTO);

    MemberVO getMemberByUserId(Long userId);

    void rechargeBalanceForMember(Integer amount);

    void upgradeCurrentMember(MemberLevel memberLevel);
}
